/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hu.szamla;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Yoso
 */
@Entity
@Table(name = "regisztracio")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Regisztracio.findAll", query = "SELECT r FROM Regisztracio r"),
    @NamedQuery(name = "Regisztracio.findBySzolgaltato", query = "SELECT r FROM Regisztracio r WHERE r.regisztracioPK.szolgaltato = :szolgaltato"),
    @NamedQuery(name = "Regisztracio.findByUgyfel", query = "SELECT r FROM Regisztracio r WHERE r.regisztracioPK.ugyfel = :ugyfel AND r.verifikalt = 1"),
    @NamedQuery(name = "Regisztracio.findByUgyfelkod", query = "SELECT r FROM Regisztracio r WHERE r.regisztracioPK.ugyfelkod = :ugyfelkod"),
    @NamedQuery(name = "Regisztracio.findByLegutolsoSzamlaOsszege", query = "SELECT r FROM Regisztracio r WHERE r.legutolsoSzamlaOsszege = :legutolsoSzamlaOsszege"),
    @NamedQuery(name = "Regisztracio.findByVerifikalt", query = "SELECT r FROM Regisztracio r WHERE r.verifikalt = :verifikalt")})
public class Regisztracio implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected RegisztracioPK regisztracioPK;
    @Basic(optional = false)
    @NotNull
    @Column(name = "legutolso_szamla_osszege")
    private int legutolsoSzamlaOsszege;
    @Basic(optional = false)
    @NotNull
    @Column(name = "verifikalt")
    private int verifikalt;
    @JoinColumn(name = "ugyfel", referencedColumnName = "felhasznalonev", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Felhasznalo felhasznalo;
    @JoinColumn(name = "szolgaltato", referencedColumnName = "felhasznalonev", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Felhasznalo felhasznalo1;

    public Regisztracio() {
    }

    public Regisztracio(RegisztracioPK regisztracioPK) {
        this.regisztracioPK = regisztracioPK;
    }

    public Regisztracio(RegisztracioPK regisztracioPK, int legutolsoSzamlaOsszege, int verifikalt) {
        this.regisztracioPK = regisztracioPK;
        this.legutolsoSzamlaOsszege = legutolsoSzamlaOsszege;
        this.verifikalt = verifikalt;
    }

    public Regisztracio(String szolgaltato, String ugyfel, String ugyfelkod) {
        this.regisztracioPK = new RegisztracioPK(szolgaltato, ugyfel, ugyfelkod);
    }

    public RegisztracioPK getRegisztracioPK() {
        return regisztracioPK;
    }

    public void setRegisztracioPK(RegisztracioPK regisztracioPK) {
        this.regisztracioPK = regisztracioPK;
    }

    public int getLegutolsoSzamlaOsszege() {
        return legutolsoSzamlaOsszege;
    }

    public void setLegutolsoSzamlaOsszege(int legutolsoSzamlaOsszege) {
        this.legutolsoSzamlaOsszege = legutolsoSzamlaOsszege;
    }

    public int getVerifikalt() {
        return verifikalt;
    }

    public void setVerifikalt(int verifikalt) {
        this.verifikalt = verifikalt;
    }

    public Felhasznalo getFelhasznalo() {
        return felhasznalo;
    }

    public void setFelhasznalo(Felhasznalo felhasznalo) {
        this.felhasznalo = felhasznalo;
    }

    public Felhasznalo getFelhasznalo1() {
        return felhasznalo1;
    }

    public void setFelhasznalo1(Felhasznalo felhasznalo1) {
        this.felhasznalo1 = felhasznalo1;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (regisztracioPK != null ? regisztracioPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Regisztracio)) {
            return false;
        }
        Regisztracio other = (Regisztracio) object;
        if ((this.regisztracioPK == null && other.regisztracioPK != null) || (this.regisztracioPK != null && !this.regisztracioPK.equals(other.regisztracioPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "hu.szamla.Regisztracio[ regisztracioPK=" + regisztracioPK + " ]";
    }
    
}
